#include "BulletCollision/CollisionDispatch/btManifoldResult.h"
#ifdef __cplusplus
extern "C" {
#endif
btManifoldResult* bullet_NewbtManifoldResult(){
	btManifoldResult* wrap_out = new btManifoldResult();
	return wrap_out;
}

btManifoldResult* bullet_NewbtManifoldResult1(btCollisionObjectWrapper* body0Wrap,btCollisionObjectWrapper* body1Wrap){
	btCollisionObjectWrapper const * c_arg_body0Wrap=(btCollisionObjectWrapper const *)(void*)(body0Wrap);
	btCollisionObjectWrapper const * c_arg_body1Wrap=(btCollisionObjectWrapper const *)(void*)(body1Wrap);
	btManifoldResult* wrap_out = new btManifoldResult(c_arg_body0Wrap,c_arg_body1Wrap);
	return wrap_out;
}

double bullet_btManifoldResult_calculateCombinedContactDamping(btManifoldResult* c_this,btCollisionObject* body0,btCollisionObject* body1){
	btCollisionObject const * c_arg_body0=(btCollisionObject const *)(void*)(body0);
	btCollisionObject const * c_arg_body1=(btCollisionObject const *)(void*)(body1);
	btScalar c_out = c_this->calculateCombinedContactDamping(c_arg_body0,c_arg_body1);
	double wrap_out = (c_out);
	return wrap_out;
}

double bullet_btManifoldResult_calculateCombinedContactStiffness(btManifoldResult* c_this,btCollisionObject* body0,btCollisionObject* body1){
	btCollisionObject const * c_arg_body0=(btCollisionObject const *)(void*)(body0);
	btCollisionObject const * c_arg_body1=(btCollisionObject const *)(void*)(body1);
	btScalar c_out = c_this->calculateCombinedContactStiffness(c_arg_body0,c_arg_body1);
	double wrap_out = (c_out);
	return wrap_out;
}

double bullet_btManifoldResult_calculateCombinedFriction(btManifoldResult* c_this,btCollisionObject* body0,btCollisionObject* body1){
	btCollisionObject const * c_arg_body0=(btCollisionObject const *)(void*)(body0);
	btCollisionObject const * c_arg_body1=(btCollisionObject const *)(void*)(body1);
	btScalar c_out = c_this->calculateCombinedFriction(c_arg_body0,c_arg_body1);
	double wrap_out = (c_out);
	return wrap_out;
}

double bullet_btManifoldResult_calculateCombinedRestitution(btManifoldResult* c_this,btCollisionObject* body0,btCollisionObject* body1){
	btCollisionObject const * c_arg_body0=(btCollisionObject const *)(void*)(body0);
	btCollisionObject const * c_arg_body1=(btCollisionObject const *)(void*)(body1);
	btScalar c_out = c_this->calculateCombinedRestitution(c_arg_body0,c_arg_body1);
	double wrap_out = (c_out);
	return wrap_out;
}

double bullet_btManifoldResult_calculateCombinedRollingFriction(btManifoldResult* c_this,btCollisionObject* body0,btCollisionObject* body1){
	btCollisionObject const * c_arg_body0=(btCollisionObject const *)(void*)(body0);
	btCollisionObject const * c_arg_body1=(btCollisionObject const *)(void*)(body1);
	btScalar c_out = c_this->calculateCombinedRollingFriction(c_arg_body0,c_arg_body1);
	double wrap_out = (c_out);
	return wrap_out;
}

double bullet_btManifoldResult_calculateCombinedSpinningFriction(btManifoldResult* c_this,btCollisionObject* body0,btCollisionObject* body1){
	btCollisionObject const * c_arg_body0=(btCollisionObject const *)(void*)(body0);
	btCollisionObject const * c_arg_body1=(btCollisionObject const *)(void*)(body1);
	btScalar c_out = c_this->calculateCombinedSpinningFriction(c_arg_body0,c_arg_body1);
	double wrap_out = (c_out);
	return wrap_out;
}

btCollisionObject* bullet_btManifoldResult_getBody0Internal(btManifoldResult* c_this){
	btCollisionObject const * c_out = c_this->getBody0Internal();
	btCollisionObject* wrap_out = (btCollisionObject*)(void*)(c_out);
	return wrap_out;
}

btCollisionObject* bullet_btManifoldResult_getBody1Internal(btManifoldResult* c_this){
	btCollisionObject const * c_out = c_this->getBody1Internal();
	btCollisionObject* wrap_out = (btCollisionObject*)(void*)(c_out);
	return wrap_out;
}

double bullet_btManifoldResult_GetFieldOfM_closestPointDistanceThreshold(btManifoldResult* c_this){
	return (double)(c_this->m_closestPointDistanceThreshold);
}

btPersistentManifold* bullet_btManifoldResult_getPersistentManifold(btManifoldResult* c_this){
	btPersistentManifold const * c_out = c_this->getPersistentManifold();
	btPersistentManifold* wrap_out = (btPersistentManifold*)(void*)(c_out);
	return wrap_out;
}

btPersistentManifold* bullet_btManifoldResult_getPersistentManifold1(btManifoldResult* c_this){
	btPersistentManifold * c_out = c_this->getPersistentManifold();
	btPersistentManifold* wrap_out = (btPersistentManifold*)(void*)(c_out);
	return wrap_out;
}

void bullet_btManifoldResult_refreshContactPoints(btManifoldResult* c_this){
	c_this->refreshContactPoints();
}

void bullet_btManifoldResult_setBody0Wrap(btManifoldResult* c_this,btCollisionObjectWrapper* obj0Wrap){
	btCollisionObjectWrapper const * c_arg_obj0Wrap=(btCollisionObjectWrapper const *)(void*)(obj0Wrap);
	c_this->setBody0Wrap(c_arg_obj0Wrap);
}

void bullet_btManifoldResult_setBody1Wrap(btManifoldResult* c_this,btCollisionObjectWrapper* obj1Wrap){
	btCollisionObjectWrapper const * c_arg_obj1Wrap=(btCollisionObjectWrapper const *)(void*)(obj1Wrap);
	c_this->setBody1Wrap(c_arg_obj1Wrap);
}

void bullet_btManifoldResult_setPersistentManifold(btManifoldResult* c_this,btPersistentManifold* manifoldPtr){
	btPersistentManifold * c_arg_manifoldPtr=(btPersistentManifold *)(void*)(manifoldPtr);
	c_this->setPersistentManifold(c_arg_manifoldPtr);
}

#ifdef __cplusplus
}
#endif
